#pragma once
#include <cinttypes>
#include <iostream>
#include <functional>

// using namespace std;

#define PRINTFUN_ADDR std::cout << static_cast<const char*>(__func__)\
                      << " at " << this << std::endl;

class A{
    int m_a = 1;
    int m_b = 2;
    int m_c = 3;
    uint8_t m_d = 4;
public:
    A(int a,int b,int c,uint8_t d);
    A(const A& other);
    A();
    ~A();
    A& operator=(const A&other);
    int sum();
    void Dump();
};